<?php
class AppController extends Controller {

	var $components = array('Auth','Acl','Session','RequestHandler');
    var $helpers = array('Form', 'Html', 'Js', 'Ajax', 'Time','Session', 'Text', 'Expandible');

    function beforeFilter() {

		parent::beforeFilter(); 
        $this->Auth->loginAction = array('controller' => 'users', 'action' => 'login');
        $this->Auth->logoutRedirect = array('controller' => 'users', 'action' => 'login');
        $this->Auth->loginRedirect = array('controller' => 'users', 'action' => 'login');
		$this->Auth->autoRedirect = false; 

		// Si la Session esta vencida usando AJAX, renderisa esta vista (IMPORTANTE)
		$this->Auth->ajaxLogin = 'session_expired'; 
    }
    
    function _redirect($url) {
    	echo "<script type=\"text/javascript\">";
    	echo " var pagina = '".$url."';";
    	echo " document.location.href=pagina;";
    	echo "</script>";
        exit();    
    }  
  
  	function _accede($donde='',$accion='accede'){
  		// --------------------------------------------------------------
  		// $accion = accede | retorna
  		// $accion->accede : Chequea si puede acceder o no, de ser negativo, lo saca al dashboard
  		// $accion->retorna: Devuelve el valor 0|1 pero accede de todas maneras. Esto sirve para tomar accion en el controlador que lo llama
  		//----------------------------------------------------------------
  		
  		//- Fomra de llamar a la funcion: $this->_accede('lista_paciente');

  		if (empty($donde)) { return; }

  		$roles_usuario = $this->Session->read('ListadoRolesUsuarioLogueado');
  		$MatrizAccesos = $this->_tabla();

		//------------ Busco el rol de la persona logueada
		$vista_actual = $this->Session->read('VistaActual');
		$this->loadModel('Rol');
		$Rol = $this->Rol->find('first', array(	'conditions' => array( 'Rol.name' => $vista_actual	), 'recursive' => 0 ));
		$rol_actual = $Rol['Rol']['id'];


  		//--- Asigno el valor por defecto
  		$accede = $MatrizAccesos[$rol_actual][$donde];

		//-------------Busca el registro de acceso
		$client_id = $this->Session->read('ClientesUsuarioLogueado.id');
		$this->loadModel('ClientsAcceso');
		$Accesos = $this->ClientsAcceso->find('first', array(
										'conditions' => array( 
											'ClientsAcceso.client_id' => $client_id,
											'ClientsAcceso.identificador' => $donde,
											'ClientsAcceso.rol_id' => $rol_actual )
										));

		if ($Accesos){
			$accede = $Accesos['ClientsAcceso']['accede'];
		}

		if ($accion == 'retorna'){
			return $accede;
		} else {
			if( $accede==0 ) {
				$this->Session->setFlash(__('Su perfil de usuario, no le permite acceder a esta sección. Consulte con el Administrador.', true), 'default', array('class' => 'error-message'));

				if($this->Session->read("Auth.redirect") == ""){
					$this->_redirect("/dashboards");
					die();

				}else{
					$this->_redirect($this->Session->read("Auth.redirect"));
					die();

				}

			}

		}

  	}
    


    function _tablanombres(){
		$TablaNombres['busca_paciente']                       = 'Buscar Pacientes';
		$TablaNombres['lista_paciente']                       = 'Listado de Pacientes';
		$TablaNombres['carga_paciente']                       = 'Cargar Pacientes';
		$TablaNombres['modifica_paciente']                    = 'Modificar Pacientes';
		$TablaNombres['crea_agenda']                          = 'Crear Agendas';
		$TablaNombres['abm_usuarios']                         = 'Administrar Usuarios';
		$TablaNombres['abm_feriados']                         = 'Administrar Feriados';
		$TablaNombres['abm_licencias']                        = 'Administrar Licencias';
		$TablaNombres['carga_turnos']                         = 'Cargar Turnos';		
		$TablaNombres['cancela_turnos']                       = 'Cancelar Turnos';
		$TablaNombres['imprime_hce']                          = 'Imprimir HCE (PDF)';
		$TablaNombres['accede_hce']                           = 'Acceder a HCE';
		$TablaNombres['evoluciona_problemas']                 = 'Evolucionar Problemas';
		$TablaNombres['asocia_medicamentos_paciente']         = 'Asociar Medicamentos';
		$TablaNombres['asocia_signos_vitales_paciente']       = 'Asociar Signos Vitales';
		$TablaNombres['asocia_archivos_paciente']             = 'Asociar Archivos';
		$TablaNombres['asocia_practicas']                     = 'Asociar Prácticas';
		$TablaNombres['asocia_financiador_consulta']          = 'Asociar Financiador a una consulta';
		$TablaNombres['asocia_resultados_paciente']           = 'Asociar Resultados';
		$TablaNombres['modifica_datos_cliente']               = 'Modificar datos del cliente';
		$TablaNombres['consulta_reportes_basicos']            = 'Consultar Reportes';
		$TablaNombres['asocia_productos_profesional']         = 'Asociar Productos al Profesional';
		$TablaNombres['asocia_financiador_profesional']       = 'Asociar Financiadores al Profesional';
		$TablaNombres['carga_matriz_productos_financiadores'] = 'Cargar la matriz Productos vs. Fianciadores';
		$TablaNombres['exporta_datos']                        = 'Exportar datos';
		$TablaNombres['matriz_permisos']                      = 'Matriz de Permisos de Acceso';
		$TablaNombres['sucursales']                           = 'Administrador de Sucursales';

		return $TablaNombres;
	}

	function _tabla(){

		// $Tabla[rol_id][identificador] = valor: 0|1
		//------Administrador
		$Tabla[1]['busca_paciente']                       = 1;
		$Tabla[1]['lista_paciente']                       = 1;
		$Tabla[1]['carga_paciente']                       = 1;
		$Tabla[1]['modifica_paciente']                    = 1;
		$Tabla[1]['carga_turnos']                         = 1;		
		$Tabla[1]['crea_agenda']                          = 1;		
		$Tabla[1]['abm_usuarios']                         = 1;		
		$Tabla[1]['abm_feriados']                         = 1;
		$Tabla[1]['abm_licencias']                        = 1;
		$Tabla[1]['cancela_turnos']                       = 1;
		$Tabla[1]['imprime_hce']                          = 1;
		$Tabla[1]['accede_hce']                           = 1;
		$Tabla[1]['evoluciona_problemas']                 = 1;
		$Tabla[1]['asocia_medicamentos_paciente']         = 1;
		$Tabla[1]['asocia_signos_vitales_paciente']       = 1;
		$Tabla[1]['asocia_archivos_paciente']             = 1;
		$Tabla[1]['asocia_practicas']                     = 1;
		$Tabla[1]['modifica_datos_cliente']               = 1;
		$Tabla[1]['consulta_reportes_basicos']            = 1;
		$Tabla[1]['asocia_financiador_consulta']          = 1;
		$Tabla[1]['asocia_resultados_paciente']            = 1;
		$Tabla[1]['asocia_productos_profesional']         = 1;
		$Tabla[1]['asocia_financiador_profesional']       = 1;
		$Tabla[1]['carga_matriz_productos_financiadores'] = 1;
		$Tabla[1]['exporta_datos']                        = 1;
		$Tabla[1]['matriz_permisos']                      = 1;
		$Tabla[1]['sucursales']                           = 1;


		//------Asistente
		$Tabla[2]['busca_paciente']                       = 1;
		$Tabla[2]['lista_paciente']                       = 1;
		$Tabla[2]['carga_paciente']                       = 1;
		$Tabla[2]['modifica_paciente']                    = 1;
		$Tabla[2]['carga_turnos']                         = 1;		
		$Tabla[2]['crea_agenda']                          = 0;		
		$Tabla[2]['abm_usuarios']                         = 1;		
		$Tabla[2]['abm_feriados']                         = 0;
		$Tabla[2]['abm_licencias']                        = 0;
		$Tabla[2]['cancela_turnos']                       = 1;
		$Tabla[2]['imprime_hce']                          = 1;
		$Tabla[2]['accede_hce']                           = 1;
		$Tabla[2]['evoluciona_problemas']                 = 1;
		$Tabla[2]['asocia_medicamentos_paciente']         = 1;
		$Tabla[2]['asocia_signos_vitales_paciente']       = 1;
		$Tabla[2]['asocia_archivos_paciente']             = 1;
		$Tabla[2]['asocia_practicas']                     = 1;
		$Tabla[2]['modifica_datos_cliente']               = 0;
		$Tabla[2]['consulta_reportes_basicos']            = 1;
		$Tabla[2]['asocia_financiador_consulta']          = 1;
		$Tabla[2]['asocia_resultados_paciente']            = 1;
		$Tabla[2]['asocia_productos_profesional']         = 1;
		$Tabla[2]['asocia_financiador_profesional']       = 1;
		$Tabla[2]['carga_matriz_productos_financiadores'] = 1;
		$Tabla[2]['exporta_datos']                        = 0;
		$Tabla[2]['matriz_permisos']                      = 0;
		$Tabla[2]['sucursales']                           = 0;
		
		//------Profesional
		$Tabla[4]['busca_paciente']                       = 1;
		$Tabla[4]['lista_paciente']                       = 1;
		$Tabla[4]['carga_paciente']                       = 1;
		$Tabla[4]['modifica_paciente']                    = 1;
		$Tabla[4]['carga_turnos']                         = 1;		
		$Tabla[4]['crea_agenda']                          = 1;		
		$Tabla[4]['abm_usuarios']                         = 1;		
		$Tabla[4]['abm_feriados']                         = 1;
		$Tabla[4]['abm_licencias']                        = 1;
		$Tabla[4]['cancela_turnos']                       = 1;
		$Tabla[4]['imprime_hce']                          = 1;
		$Tabla[4]['accede_hce']                           = 1;
		$Tabla[4]['evoluciona_problemas']                 = 1;
		$Tabla[4]['asocia_medicamentos_paciente']         = 1;
		$Tabla[4]['asocia_signos_vitales_paciente']       = 1;
		$Tabla[4]['asocia_archivos_paciente']             = 1;
		$Tabla[4]['asocia_practicas']                     = 1;
		$Tabla[4]['modifica_datos_cliente']               = 0;
		$Tabla[4]['consulta_reportes_basicos']            = 1;
		$Tabla[4]['asocia_financiador_consulta']          = 1;
		$Tabla[4]['asocia_resultados_paciente']            = 1;
		$Tabla[4]['asocia_productos_profesional']         = 1;
		$Tabla[4]['asocia_financiador_profesional']       = 1;
		$Tabla[4]['carga_matriz_productos_financiadores'] = 1;
		$Tabla[4]['exporta_datos']                        = 1;
		$Tabla[4]['matriz_permisos']                      = 0;
		$Tabla[4]['sucursales']                           = 0;
		
		//------Enfermero
		$Tabla[5]['busca_paciente']                       = 1;
		$Tabla[5]['lista_paciente']                       = 1;
		$Tabla[5]['carga_paciente']                       = 1;
		$Tabla[5]['modifica_paciente']                    = 1;
		$Tabla[5]['carga_turnos']                         = 1;		
		$Tabla[5]['crea_agenda']                          = 0;		
		$Tabla[5]['abm_usuarios']                         = 0;		
		$Tabla[5]['abm_feriados']                         = 1;
		$Tabla[5]['abm_licencias']                        = 1;
		$Tabla[5]['cancela_turnos']                       = 1;
		$Tabla[5]['imprime_hce']                          = 1;
		$Tabla[5]['accede_hce']                           = 1;
		$Tabla[5]['evoluciona_problemas']                 = 1;
		$Tabla[5]['asocia_medicamentos_paciente']         = 1;
		$Tabla[5]['asocia_signos_vitales_paciente']       = 1;
		$Tabla[5]['asocia_archivos_paciente']             = 1;
		$Tabla[5]['asocia_practicas']                     = 1;
		$Tabla[5]['modifica_datos_cliente']               = 0;
		$Tabla[5]['consulta_reportes_basicos']            = 1;
		$Tabla[5]['asocia_financiador_consulta']          = 1;
		$Tabla[5]['asocia_resultados_paciente']            = 1;
		$Tabla[5]['asocia_productos_profesional']         = 1;
		$Tabla[5]['asocia_financiador_profesional']       = 1;
		$Tabla[5]['carga_matriz_productos_financiadores'] = 1;
		$Tabla[5]['exporta_datos']                        = 0;
		$Tabla[5]['matriz_permisos']                      = 0;		
		$Tabla[5]['sucursales']                           = 0;
		
		//------Secretaria
		$Tabla[6]['busca_paciente']                       = 1;
		$Tabla[6]['lista_paciente']                       = 1;
		$Tabla[6]['carga_paciente']                       = 1;
		$Tabla[6]['modifica_paciente']                    = 1;
		$Tabla[6]['carga_turnos']                         = 1;		
		$Tabla[6]['crea_agenda']                          = 0;		
		$Tabla[6]['abm_usuarios']                         = 1;		
		$Tabla[6]['abm_feriados']                         = 1;
		$Tabla[6]['abm_licencias']                        = 1;
		$Tabla[6]['cancela_turnos']                       = 1;
		$Tabla[6]['imprime_hce']                          = 0;
		$Tabla[6]['accede_hce']                           = 1;
		$Tabla[6]['evoluciona_problemas']                 = 0;
		$Tabla[6]['asocia_medicamentos_paciente']         = 1;
		$Tabla[6]['asocia_signos_vitales_paciente']       = 1;
		$Tabla[6]['asocia_archivos_paciente']             = 1;
		$Tabla[6]['asocia_practicas']                     = 1;
		$Tabla[6]['modifica_datos_cliente']               = 1;
		$Tabla[6]['consulta_reportes_basicos']            = 1;
		$Tabla[6]['asocia_financiador_consulta']          = 1;
		$Tabla[6]['asocia_resultados_paciente']            = 1;
		$Tabla[6]['asocia_productos_profesional']         = 1;
		$Tabla[6]['asocia_financiador_profesional']       = 1;
		$Tabla[6]['carga_matriz_productos_financiadores'] = 1;
		$Tabla[6]['exporta_datos']                        = 1;
		$Tabla[6]['matriz_permisos']                      = 0;
		$Tabla[6]['sucursales']                           = 0;
		
		return $Tabla;
    }
    
}
?>